/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.dao;

import br.com.deployment.daogenerico.DaoGenerico;
import br.com.deployment.entidade.fermojupi.AtoTipo;
import br.com.deployment.interfaces.AtoTipoDaoIn;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.Query;

/**
 *
 * @author elyjr
 */
@Stateless
@LocalBean
public class AtoTipoDao extends DaoGenerico<AtoTipo> implements AtoTipoDaoIn{
    
    
    public AtoTipoDao(){
        super(AtoTipo.class);
    }
    
    public AtoTipo findCodigo(String cod) {
        String sql = "";
        sql = "Select at from AtoTipo at where at.codigo like :codigo AND at.ativo = true;";
        Query query = getEm().createQuery(sql);
        
        query.setParameter("codigo", cod);
        AtoTipo at = new AtoTipo();
        at = (AtoTipo) query.getSingleResult();
        return at;
    }

    public List<AtoTipo> findAll() {
        List<AtoTipo> lista = new ArrayList<AtoTipo>();
        String sql = "select a from AtoTipo a ";
        Query query = getEm().createQuery(sql);
        lista = query.getResultList();
        return lista;
    }

    public List<AtoTipo> findAtoTipo(AtoTipo atoTipo) {
        List<AtoTipo> listAto = new ArrayList<AtoTipo>();
        if (atoTipo != null) {
            String sql = "select a from AtoTipo a";

            if (atoTipo.getDescricao() != null && atoTipo.getDescricao().length() > 0) {
                sql += " where  a.descricao like ?1 and a.ativo = true";
            }

            Query query = getEm().createQuery(sql);
            if (atoTipo.getDescricao() != null && atoTipo.getDescricao().length() > 0) {
                query.setParameter("1", "%" + atoTipo.getDescricao() + "%");
            }

            listAto = query.getResultList();
            return listAto;
        }
        return null;
    }
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")

  
    public List<AtoTipo> findPesquisar(AtoTipo atoTipo) {
        List<AtoTipo> list = new ArrayList<AtoTipo>();
          
        if(atoTipo != null){
           
             String sql = "Select a from AtoTipo a where ";
             
             if(atoTipo.getDescricao()!= null && atoTipo.getDescricao() != ""){
                 sql += " lower(a.descricao) like lower(?1) "; 
             }
             Query query = getEm().createQuery(sql);
             if(atoTipo.getDescricao()!= null && atoTipo.getDescricao() != ""){
                 query.setParameter("1", "%" + atoTipo.getDescricao() + "%");
             }
          
              list = query.getResultList();
              System.out.println(sql);
        }
        
        return list;
    }    
}
